﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entidades;
using Negocio;
//using ControlEx;

namespace Precentacion1
{
    public partial class frmCliente : Form
    {
        int DNI;

        private enum Modo
        {
            Agregar,
            Modificar,
        }

        private int IdOriginal = 0;

        private Modo Modalidad;

        
        public frmCliente()
        {
            InitializeComponent();
            this.Configurar();
            Modalidad = Modo.Agregar;
        }

        public frmCliente(Cliente paramCliente)
        {
            InitializeComponent();
            this.Configurar();
            Modalidad = Modo.Modificar;
            IdOriginal = paramCliente.Id;
            DNI = paramCliente.Dni; 
            this.textBoxDireccion.Text = paramCliente.Direccion;
            this.textBoxApellido.Text = paramCliente.Apellido;
            this.textBoxDni.Text = Convert.ToString(paramCliente.Dni);
            this.textBoxLocalidad.Text = paramCliente.Localidad;
            this.textBoxNombre.Text = paramCliente.Nombre;
            this.textBoxOpinion.Text = paramCliente.Opinion;
            this.textBoxTelefono.Text = paramCliente.Telefono;
             
            //IdOriginal = paramCliente.Id;
           //this.txtNombre.Text = paramCliente.Nombre;
            //this.txtApellido.Text = paramCliente.Apellido;
            //this.txtDireccion.Text = paramCliente.Direccion;
            //this.txtTelefono.Text = paramCliente.Telefono;
            //this.txtEmail.Text = paramCliente.Email;
        }

        private void Configurar()
        {
            this.StartPosition = FormStartPosition.CenterParent;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.ShowIcon = false;
            this.MinimizeBox = false;
            this.MaximizeBox = false;
            this.ShowInTaskbar = false;
            this.AcceptButton = this.btnAceptar;
            this.CancelButton = this.btnCancelar;
        }

     

        private void frmCliente_Load(object sender, EventArgs e)
        {

        }

        private void btnAceptar_Click_1(object sender, EventArgs e)
        {
            
                Cliente objCliente;
                switch (Modalidad)
                {
                    case Modo.Agregar:

                        if (admClientes.BuscarClientePorDni(Convert.ToInt32(this.textBoxDni.Text)))
                        {
                            MessageBox.Show("El Cliente se encuentra registrado en la Base de Datos");
                            break;
                        }
                        else{
                            objCliente = new Cliente(this.textBoxNombre.Text, this.textBoxApellido.Text.Trim(), this.textBoxDireccion.Text.Trim(), Convert.ToInt32(this.textBoxDni.Text), this.textBoxLocalidad.Text, this.textBoxTelefono.Text, this.textBoxOpinion.Text);
                            admClientes.AgregarCliente(objCliente);
                            break;
                            
                        }
                    case Modo.Modificar:
                        if (DNI != Convert.ToInt32(this.textBoxDni.Text))
                        {
                            MessageBox.Show("No se debe Modificar el DNI ,si realmente necesita necesita modificar debe eliminar el registro y cargar nuevamente los datos");
                            return;
                        }
                        else{
                            objCliente = new Cliente(IdOriginal, this.textBoxNombre.Text, this.textBoxApellido.Text, this.textBoxDireccion.Text, this.textBoxTelefono.Text, this.textBoxLocalidad.Text, Convert.ToInt32(this.textBoxDni.Text) , this.textBoxOpinion.Text);
                            admClientes.ModificarCliente(objCliente);
                            break;
                            
                        }
                }
              this.Close();
          
        }


       

       
    }
}
